describe('Hyperlink', function () {
    var link,
        url = 'http://website'

    beforeEach(function () {
        link = draw.link(url)
        link.rect(100, 100)
    })

    afterEach(function () {
        draw.clear()
    })

    it('creates a link', function () {
        expect(link.attr('href')).toBe(url)
    })

    describe('to()', function () {
        it('creates xlink:href attribute', function () {
            link.to('http://apple.com')
            expect(link.attr('href')).toBe('http://apple.com')
        })
    })

    describe('show()', function () {
        it('creates xlink:show attribute', function () {
            link.show('replace')
            expect(link.attr('show')).toBe('replace')
        })
    })

    describe('target()', function () {
        it('creates target attribute', function () {
            link.target('_blank')
            expect(link.attr('target')).toBe('_blank')
        })
    })

    describe('SVG.Element', function () {
        var element

        beforeEach(function () {
            element = draw.rect(100, 100)
        })

        describe('linkTo()', function () {
            it('wraps the called element in a link with given url', function () {
                element.linkTo(url)
                expect(element.parent().attr('href')).toBe(url)
            })
            it('wraps the called element in a link with given block', function () {
                element.linkTo(function (link) {
                    link.to(url).target('_blank')
                })
                expect(element.parent().attr('href')).toBe(url)
                expect(element.parent().attr('target')).toBe('_blank')
            })
        })
    })
})
